/*
 * To change this template, choose Tools | Templates
 * and open the template in the editor.
 */

package Persistencia;

import Persistencia.Entidades.BoletaSenasa;
import Persistencia.Entidades.Sanitario;
import java.util.List;


/**
 * La ISanitarioDAO provee los métodos para la insercción, eliminación y actualización
 * de los Sanitario en la Base de Datos.
 *
 * La  ISanitarioDAO provee los métodos para la recuperación de los Sanitarios de la
 * Base de Datos.
 *
 * Ofrece la correspondencia Objeto Relacional entre un Objeto Entidad Sanitario con
 * las tablas relacionales de la base de datos.
 * @author zeta
 */
public interface ISanitarioDAO {

    /**
     * Inserta un sanitario en una base de datos
     * @param sanitario el Objeto Sanitario a guardar en la BD
     * @return El NUM_SANITARIO del sanitario ingresado - null en el caso de error
     */
    public Integer insertSanitario(Sanitario sanitario);
    /**
     * Actualiza un sanitario en una base de datos
     * @param sanitario el Objeto Sanitario a Actualizar en la BD
     * @return true si se realizo correctamente o false si hubo error
     */
    public boolean updateSanitario(Sanitario sanitario);
    /**
     * Elimina un sanitario en una base de datos
     * @param sanitario sanitario el Objeto Sanitario a Eliminar en la BD
     * @return true si se realizo correctamente o false si hubo error
     */
    public boolean deleteSanitario(Sanitario sanitario);
    /**
     * Retorna un sanitario de la base de datos
     * @param numSanitario el numero de el sanitario que se quiere retornar
     * @param conBoletaSenasa true para cargar las boletas en el sanitario retornado
     * @return un Objeto Sanitario correspondiente al numero de sanitario enviado como parametro
     */
    public Sanitario getSanitario(Integer numSanitario,boolean conBoletaSenasa);
    /**
     * Retorna una Lista con  todos los sanitario de la base de datos
     * @param conBoletaSenasa true para cargar las boletas en el sanitario retornado
     * @return una Lista que contiene todos los sanitario de la base de datos
     */
    public List<Sanitario> getAllSanitarios(boolean conBoletaSenasa);
    /**
     * Carga todos los sanitarios que corresponden a un objeto BoletaSenasa que se envia como paramatro
     * @param boletaSenasa Objeto donde se cargan todos los sanitarios de una boleta de senasa
     * @param true para cargar todas las boletas
     * @return
     */
    public boolean getAllSanitarios(BoletaSenasa boletaSenasa,boolean conBoletaSenasa);
    /**
     * Retorna una Lista con  todos los sanitario de la base de datos que no tienen
     * asociada ninguna boleta de senasa
     * @return La lista con todos los sanitarios sin boletas - null en caso de no existir
     * sanitario sin boletas
     */
    public List<Sanitario> getAllSanitariosSinBoletas();
    /**
     * Retorna una Lista con  todos los sanitario de la base de datos que  tienen
     * asociada ninguna boleta de senasa
     * @param conBoletaSenasa true para cargar las boletas en el sanitario retornado
     * @return La lista con todos los sanitarios sin boletas - null en caso de no existir
     * sanitario sin boletas
     */
    public List<Sanitario> getAllSanitariosConBoletas(boolean conBoletaSenasa);
}
